1. Field of the Invention
The invention relates to the field of simulation systems and methods and in particular to systems and methods for simulation of space flights.
2. Description of the Prior Art
Development of flight software for an embedded system is traditionally done on a flight-like test-bed. Flight-like test-beds are usually expensive and hence very few are made. While it seems appropriate to perform software testing on the target hardware, its use is often limited to the developers. While software simulators that run on workstation are getting popular for testing and verification of software, yet these software simulators do not provide accurate hardware platform timing. Without being able to simulate with realistic timing, which reflect the real hardware, one cannot depend on simulation for accurately verifying and testing flight software.
The four necessary ingredients of high fidelity software simulation in order to accurately simulate the actual hardware are: 1) high fidelity algorithms, 2) accurate representation of state machines, 3) high fidelity transactions and 4) high fidelity timing. Most of the industry high fidelity simulators come with the ingredients #1, 2, and 3. Ingredient #4, one of the most important, to validate timing, is either approximated or detailed. Timing approximation is implemented in a functional simulator by running flight software on a workstation by either cross-compiling or writing highly portable code. Timing detail is implemented by running the flight software on a simulated CPU. Timing approximation does not provide high fidelity simulation. Timing detail provides high fidelity simulation, but cannot keep-up with the performance of the real hardware. High fidelity simulators, in order to be usable by a large community of software developers, should provide reasonable performance usually equal to or better than real hardware.
High fidelity software simulators representing accurate functionality and timing of real hardware with good performance on workstations, have enormous value to the space flight projects. High fidelity simulators can help develop and test 80-90% of software in a workstation environment. This improves the productivity and time to develop the software, as simulated software test beds could be made available to everyone on the project at minimal cost. Simulation-based desktop and laptop workstation test beds provide many advantages over hardware-in-the-loop test beds. A software simulator provides much more flexibility and ease of use in terms of monitoring and detecting faults than hardware test beds. The software test beds can run many times faster than the real hardware provided the simulator allows scalability.
Two major types of closed-loop spacecraft simulators that run on a workstation have been used at JPL in the past, Instruction Level Simulation (ILS) and Functional level Simulation (FLS).
In an ILS simulator infrastructure flight software runs on an Instruction-level CPU software model along with functional software models of hardware busses, sensors, actuators and other avionic models with their interfaces simulated at low-level abstraction. JPL's High Speed Simulator (HSS) is an ILS, which was used for Cassini and Galileo spacecraft simulation.
In an FLS simulator infrastructure flight software is cross-compiled for a workstation along with functional models of hardware busses, sensors, actuators and other avionic models with their interfaces simulated at low-level abstraction. JPL's Flight Software Development System (FSDS) is a FLS, which is being used for Cassini spacecraft simulation.
ILS simulators are of the highest fidelity with very close timing accuracy when results are compared to real hardware, as the timing is simulated at CPU instruction level. Instruction timing is implemented from manufacturer's CPU instruction specification. In ILS no changes are required in the flight software source code. Disadvantage of ILS is that it cannot keep-up with the performance of real hardware as simulation model is developed at low-level of abstraction. ILS simulators are very expensive to develop. FLS simulators have medium level fidelity. In FLS even though the interfaces are simulated at low-level abstraction, yet the timing cannot be accurately represented since the software is cross-compiled for a workstation. Timing in FLS represents the calculated or measured transaction time of the real hardware, which is an approximation. In FLS changes are made in the flight software to be able to run on a workstation. FLS development is relatively inexpensive compared to ILS development. ILS provides high fidelity timing, but has its disadvantages. FLS on the other hand provides canned high-level timing simulation.